Dynamic Sequence – Document Upload

End-to-end upload sequence showing UI submission, BFF coordination, authorization, metadata persistence, file storage, and observability
USER
User
Initiates document upload from the CMS screen
Browser / React SPA
Collects file and metadata, then calls backend APIs
BFF
BFF / Orchestration
Receives upload request and forwards to document service
DOC
Document Management Service
Validates, authorizes, coordinates metadata and file storage
DDB
Azure DocumentDB
Stores metadata, ownership, references, and document state
ADLS
ADLS Gen2
Stores the uploaded binary file / object
DD
Datadog / Audit
Tracks logs, metrics, traces, and document operation audit events
OK
Returned Result
Success or error response rendered back to the user
1. Select file
User selects file and enters related metadata
2. Send upload request
React sends upload request to BFF
3. Forward to document service
BFF forwards file action and context to Document Service
4. Validate request
Document service validates request shape and file intent
5. Authorize operation
RBAC / ABAC check confirms upload permission
6. Persist metadata
Document service writes metadata record to DocumentDB
7. Metadata acknowledgement
DocumentDB returns metadata persistence result
8. Store file content
Document service stores binary file in ADLS Gen2
9. File storage acknowledgement
ADLS returns file storage confirmation / reference
10. Emit logs & audit
Upload event, status, and trace data are sent to Datadog / audit path
11. Build final response
Document service returns document ID and status to BFF
12. Return success payload
BFF returns final upload response to the frontend
13. Render confirmation
UI shows success status, reference, and file result
Controlled upload path: The browser never writes directly to storage. Upload actions are mediated through the BFF and Document Management Service.
Separated persistence: Metadata is stored in DocumentDB while binary content is stored in ADLS Gen2, keeping document state separate from object storage.
Auditable flow: Upload events, failures, and success outcomes are observable through Datadog and audit-oriented backend logging.
User action Frontend / result BFF orchestration Document service logic Metadata persistence File storage Observability / audit